package com.campus.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.campus.common.core.domain.AjaxResult;
import com.campus.pojos.domain.ClientArticle;
import com.campus.pojos.domain.dto.AdminArticlePageQueryDTO;
import com.campus.pojos.domain.dto.ArticleDto;
import com.campus.pojos.domain.dto.ArticleQueryDto;
import com.campus.pojos.domain.dto.PageQueryDto;
import com.campus.pojos.domain.vo.ArticleVo;
import com.campus.result.PageResult;
import com.campus.result.Result;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

public interface ArticleService extends IService<ClientArticle> {

    /**
     * 保存帖子
     * @param dto
     */
    public void saveArticle(ArticleDto dto);

    /**
     * 按条件获取贴子列表
     * @param dto
     * @return
     */
    Result<List<ArticleVo>> articleList(ArticleQueryDto dto);


    /**
     * 根据id查询帖子
     * @param id
     * @return
     */
    Result<ArticleVo> getByArticleId(Long id);

    public AjaxResult getByArticleIdTwo(Long id);
    /**
     * 编辑帖子
     * @param dto
     * @return
     */
    public void editArticle(ArticleDto dto);

    /**
     * 点赞
     * @param articleId
     */
    void likeArticle(Long articleId, Long userId);

    /**
     * 取消点赞
     * @param articleId
     * @param userId
     */
    void dislikeArticle(Long articleId, Long userId);

    /**
     * 管理端帖子条件查询
     * @param dto
     * @return
     */
    PageResult conditionSearch(AdminArticlePageQueryDTO dto);

    /**
     * 帖子状态修改
     * @param articleId
     * @param status
     */
    void updateStatus(Integer articleId, Integer status);

    /**
     *
     * 获取有图片的帖子
     */
    Result<PageResult> getPhotoArticle(PageQueryDto dto);

}
